/**
 * 浏览器环境内的工具类
 */
const DOM_COMMENT_NODE_NAME = '#comment';
const BrowserUtils = {
    /**
     * 是否为浏览器环境下
     */
    inBrowser: true,
    /**
     * 禁用body的滚动条
     */
    disableBodyScroll() {
        if (BrowserUtils.inBrowser) {
            document.body.style.overflow = 'hidden';
        }
    },
    /**
     * 启用body滚动条
     */
    enableBodyScroll() {
        if (BrowserUtils.inBrowser) {
            document.body.style.overflow = 'scroll';
        }
    },
    /**
     * 是否比展示窗口还要高
     * @param height
     * @returns {boolean}
     */
    isHigherThanWindow(height) {
        if (BrowserUtils.inBrowser) {
            return height > window.innerHeight;
        }
        return false;
    },
    /**
     * 判断该DOM节点是否为html对象
     * @param dom
     * @returns {boolean}
     */
    isHTMLElement(dom) {
        if (!BrowserUtils.inBrowser) {
            return false;
        }
        return HTMLElement ? dom instanceof HTMLElement : dom && typeof dom === 'object' && dom.nodeType === 1 && typeof dom.nodeName === 'string';
    },
    /**
     * 判断该DOM节点是否为HTML的注释对象
     * @param dom
     * @returns {boolean}
     */
    isHTMLComment(dom) {
        if (!BrowserUtils.inBrowser) {
            return false;
        }
        return Comment ? dom instanceof Comment : dom && typeof dom === 'object' && dom.nodeType === 8 && typeof dom.nodeName === DOM_COMMENT_NODE_NAME;
    },
    /**
     * 获取浏览器本地i18n语言编码
     * @returns {string|undefined}
     */
    locale() {
        if (!BrowserUtils.inBrowser) {
            return undefined;
        }
        return window.navigator.language;
    }
};
//初始化
((global,factory) => {
    if(typeof module === 'object' && typeof module.exports === 'object' ){
        //当为commonjs（node）的环境时候
        module.exports = factory(global,true);
    }else{
        //不然为浏览器环境下
        factory(global);
    }
})(typeof window !== 'undefined' ? window : this,function(window,isGlobal){
    BrowserUtils.inBrowser = !isGlobal;
});
export default BrowserUtils;